package org.jeecg.common.util;

import org.apache.commons.lang.StringUtils;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class SearchUtils {
    public static void getNewValues(Object obj) {
        Class aClass = obj.getClass();
        //拿到所有属性
        Field[] declaredFields = aClass.getDeclaredFields();
        //遍历属性
        try {
            for (Field item : declaredFields) {
                //判断属性类型是否是String
                if (item.getGenericType().getTypeName().equals("java.lang.String")) {
                    item.setAccessible(true);
                    String name = item.getName();//获取属性的名字
                    name = name.substring(0, 1).toUpperCase() + name.substring(1);
                    //根据方法名获得方法
                    Method method = aClass.getMethod("get" + name);
                    //拿到属性的值
                    String invoke = (String) method.invoke(obj);
                    //如果值不为空
                    if (StringUtils.isNotEmpty(invoke)) {
                        String newVaule = "*" + invoke + "*";
                        item.set(obj, newVaule);
                    }
                }
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}
